package com.chen.jobs;

import com.chen.dao.SetmealDao;
import com.chen.utils.QiNiuUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @Author zhebie
 * @DATE 2021/9/19
 */
@Component
public class ClearImgJob {
    private static final Logger log = LoggerFactory.getLogger(ClearImgJob.class);

    @Autowired
    private SetmealDao setmealDao;

    /**
     * 清理七牛云图片的方法
     */
    public void clean7NiuImgJob(){
        log.info("开始清理七牛云上面的垃圾图片");
        //查询七牛云的图片，得到一个集合
        List<String> picsIn7Niu = QiNiuUtils.listFile();
        log.debug("七牛云上有{}张照片",null!=picsIn7Niu?picsIn7Niu.size():0);
        //查询数据库中所有套餐的图片，集合
        List<String> picsInDb = setmealDao.selectImgs();
        log.debug("数据库上有{}张照片",null!=picsInDb?picsInDb.size():0);
        //七牛云减去保存在数据库上的=垃圾
        picsIn7Niu.removeAll(picsInDb);
        //需要删除的图片  .toArray(new String[]{})  转成数组
        String[] picsNeed2Delete = picsIn7Niu.toArray(new String[]{});
        log.debug("需要删除有{}张照片",picsNeed2Delete.length);
        //调用七牛云工具删除图片
        QiNiuUtils.removeFiles(picsNeed2Delete);
        //加log日志
        log.info("完成清理七牛云上的垃圾图片....");
    }
}
